package com.hu.boot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/*
    修饰范围: 用在类上,且只能用在入口类上,项目中只能出现一次
    作用: 标志这个类是 SpringBoot 的入口类,用于启动整个 SpringBoot 项目总入口

    创建一个 SpringBoot 项目步骤
        1、pom 文件引入依赖
        2、resources 生成 application.yml
        3、创建入口类并加入 @SpringBootApplication 注解,并在 main 函数中启动应用

    @SpringBootApplication: 注解
       组合注解: 由多个注解组合而成一个注解
       元注解: 用来修饰注解的注解,如 @Target 指定注解作用范围, @Retention 指定注解什么时候有效

        @SpringBootConfiguration: 用来自动配置 spring springmvc(初始化 servlet ..)相关环境
        @EnableAutoConfiguration: 开启自动配置,自动配置核心注解,自动配置 spring 相关环境,自动与项目中并引入第三方技术自动配置其环境
                                   mybatis-springboot、redis-springboot、es-springboot、rabbitmq 第三方技术
        @ComponentScan:           组件扫描,根据注解发挥注解作用,默认扫描当前包及其子包

    运行 jar 包时,使用其他的配置文件,不使用项目中的配置文件时的命令
        java -jar --spring.config.location=绝对路径  xxx.jar
 */
@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        /*
            启动 SpringBoot 应用
                参数 1: 指定入口类的类的类对象
                参数 2: main 函数参数
         */
        SpringApplication.run(Application.class, args);
    }

}
